home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_09_08 / 9n08040b < prev    next >
Text File  |  1991-04-22  |  2KB  |  103 lines

  1. /* Drawbox.c  Copyright 1991 Dave Newman.
  2.    Permission for any use is granted
  3.    as long as this notice is included.
  4.    These functions need the bios_disp
  5.    function package to work */
  6.  
  7. #include <bios.h>
  8. #include <box.h>
  9.  
  10. /* this routine draws a box using the
  11.    IBM box characters. The routine is smart  
  12.    enough to get the corners right using the
  13.    single or double line characters.
  14.    Type should be 1 or 2 for single or double lines */
  15.  
  16. void draw_box(
  17.      int srow, int scol,int erow,int ecol,int type)
  18.    {
  19.  
  20.    /* right vert line */
  21.    draw_vline(srow,ecol,erow,type);
  22.  
  23.    /* left vert line */
  24.    draw_vline(srow,scol,erow,type);
  25.  
  26.    /* top horiz line */
  27.    draw_hline(srow,scol,ecol,type);
  28.  
  29.    /* bottom horiz line */
  30.    draw_hline(erow,scol,ecol,type);
  31.  
  32.    /* fix the corners */
  33.    bios_move(srow,scol);
  34.    if(type == 2)
  35.       bios_pchatt(201);
  36.    else
  37.       bios_pchatt(218);
  38.  
  39.    bios_move(srow,ecol);
  40.    if(type == 2)
  41.       bios_pchatt(187);
  42.    else
  43.       bios_pchatt(191);
  44.  
  45.    bios_move(erow,scol);
  46.    if(type == 2)
  47.       bios_pchatt(200);
  48.    else
  49.       bios_pchatt(192);
  50.  
  51.    bios_move(erow,ecol);
  52.    if(type == 2)
  53.       bios_pchatt(188);
  54.    else
  55.       bios_pchatt(217);
  56.    }
  57.  
  58. void draw_hline(int srow,int scol,int ecol,int type)
  59.    {
  60.    int x;
  61.  
  62.    bios_move(srow,scol);
  63.    if(type == 2)
  64.       bios_pchatt(204);
  65.    else
  66.       bios_pchatt(195);
  67.  
  68.    for(x=scol+1; x < ecol; x++)
  69.       {
  70.       bios_move(srow,x);
  71.       bios_pchatt(205);
  72.       }
  73.    bios_move(srow,ecol);
  74.    if(type == 2)
  75.       bios_pchatt(185);
  76.    else
  77.       bios_pchatt(180);
  78.    }
  79.  
  80. void draw_vline(int srow,int scol,int erow,int type)
  81.    {
  82.    int x;
  83.  
  84.    bios_move(srow,scol);
  85.    if(type == 2)
  86.       bios_pchatt(203);
  87.    else
  88.       bios_pchatt(194);
  89.  
  90.    for(x=srow+1; x< erow; x++)
  91.       {
  92.       bios_move(x,scol);
  93.       bios_pchatt(186);
  94.       }
  95.    bios_move(erow,scol);
  96.    if(type == 2)
  97.       bios_pchatt(202);
  98.    else
  99.       bios_pchatt(193);
  100.    }
  101.  
  102.  
  103.